package com.tcfvic.client.pojos;
// Generated 29/03/2010 9:10:02 PM by Hibernate Tools 3.1.0.beta4

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.JoinColumns;
import javax.persistence.ManyToOne;
import javax.persistence.Table;


/**
 * Personcoursefundingsource generated by hbm2java
 */
@Entity
@Table(name="personcoursefundingsource"
    
, uniqueConstraints = {  }
)

public class Personcoursefundingsource  implements java.io.Serializable {


    // Fields    

     private PersoncoursefundingsourceId id;
     private Fundingsource fundingsource;
     private Personcourse personcourse;
     private Double cost;
     private Integer trainingdaysclaimed;
     private Integer traininghourclaimed;


    // Constructors

    /** default constructor */
    public Personcoursefundingsource() {
    }

	/** minimal constructor */
    public Personcoursefundingsource(PersoncoursefundingsourceId id, Fundingsource fundingsource, Personcourse personcourse) {
        this.id = id;
        this.fundingsource = fundingsource;
        this.personcourse = personcourse;
    }
    
    /** full constructor */
    public Personcoursefundingsource(PersoncoursefundingsourceId id, Fundingsource fundingsource, Personcourse personcourse, Double cost, Integer trainingdaysclaimed, Integer traininghourclaimed) {
        this.id = id;
        this.fundingsource = fundingsource;
        this.personcourse = personcourse;
        this.cost = cost;
        this.trainingdaysclaimed = trainingdaysclaimed;
        this.traininghourclaimed = traininghourclaimed;
    }
    

   
    // Property accessors
    @EmbeddedId
    @AttributeOverrides( {
        @AttributeOverride(name="fundingSourceId", column=@Column(name="FundingSource_id", unique=false, nullable=false, insertable=true, updatable=true) ), 
        @AttributeOverride(name="personCoursePersonId", column=@Column(name="PersonCourse_Person_id", unique=false, nullable=false, insertable=true, updatable=true) ), 
        @AttributeOverride(name="personCourseCourseId", column=@Column(name="PersonCourse_Course_id", unique=false, nullable=false, insertable=true, updatable=true) ) } )

    public PersoncoursefundingsourceId getId() {
        return this.id;
    }
    
    public void setId(PersoncoursefundingsourceId id) {
        this.id = id;
    }
    @ManyToOne(cascade={},
        fetch=FetchType.LAZY)
    
        @JoinColumn(name="FundingSource_id", unique=false, nullable=false, insertable=false, updatable=false)

    public Fundingsource getFundingsource() {
        return this.fundingsource;
    }
    
    public void setFundingsource(Fundingsource fundingsource) {
        this.fundingsource = fundingsource;
    }
    @ManyToOne(cascade={},
        fetch=FetchType.LAZY)
    
        @JoinColumns( { 
            @JoinColumn(name="PersonCourse_id", unique=false, nullable=false, insertable=false, updatable=false), 
            @JoinColumn(name="PersonCourse_Person_id", unique=false, nullable=false, insertable=false, updatable=false), 
        @JoinColumn(name="PersonCourse_Course_id", unique=false, nullable=false, insertable=false, updatable=false) } )

    public Personcourse getPersoncourse() {
        return this.personcourse;
    }
    
    public void setPersoncourse(Personcourse personcourse) {
        this.personcourse = personcourse;
    }
    @Column(name="cost", unique=false, nullable=true, insertable=true, updatable=true, precision=22, scale=0)

    public Double getCost() {
        return this.cost;
    }
    
    public void setCost(Double cost) {
        this.cost = cost;
    }
    @Column(name="trainingdaysclaimed", unique=false, nullable=true, insertable=true, updatable=true)

    public Integer getTrainingdaysclaimed() {
        return this.trainingdaysclaimed;
    }
    
    public void setTrainingdaysclaimed(Integer trainingdaysclaimed) {
        this.trainingdaysclaimed = trainingdaysclaimed;
    }
    @Column(name="traininghourclaimed", unique=false, nullable=true, insertable=true, updatable=true)

    public Integer getTraininghourclaimed() {
        return this.traininghourclaimed;
    }
    
    public void setTraininghourclaimed(Integer traininghourclaimed) {
        this.traininghourclaimed = traininghourclaimed;
    }
   








}
